/*
 *   This File is Part of CuteOgre Game Engine
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *	Copyright 2010 Alexandre Pires ( c.alexandre.pires@gmail.com )
 *  Created on: 2010/09/05
 */

#include "Gui/GUIOverlay.h"
#include "OGRE/OgreOverlayManager.h"

void GUIOverlay::setupOverlay ( const QString &rName, const QRect& rDimensions ) {

	if ( mOverlay )
		Ogre::OverlayManager::getSingleton ().destroy ( mOverlay );

	if ( mContainer )
		Ogre::OverlayManager::getSingleton ().destroyOverlayElement (
				mContainer );

	mOverlay = Ogre::OverlayManager::getSingleton ().create ( rName.toStdString () );

	mContainer
			= static_cast<Ogre::OverlayContainer*> ( Ogre::OverlayManager::getSingleton ().createOverlayElement (
					"Panel", QString(rName+"container").toStdString() ) );

	mContainer->setMetricsMode ( Ogre::GMM_PIXELS );
	mContainer->setPosition ( rDimensions.left(), rDimensions.top() );

	mContainer->setDimensions ( rDimensions.width(), rDimensions.height() );
	mOverlay->add2D ( mContainer );
}

GUIOverlay::~GUIOverlay () {

	if ( mOverlay )
		Ogre::OverlayManager::getSingleton ().destroy ( mOverlay );

	if ( mContainer )
		Ogre::OverlayManager::getSingleton ().destroyOverlayElement (
				mContainer );
}

void GUIOverlay::show () {

	if ( !mContainer )
		return;

	mContainer->show ();
}

void GUIOverlay::hide () {

	if ( !mContainer )
		return;

	mContainer->hide();
}
